"Gtk/AutoMnemonics\0" "gtk-auto-mnemonics\0"
"Gtk/VisibleFocus\0" "gtk-visible-focus\0"
"Gtk/ShellShowsAppMenu\0" "gtk-shell-shows-app-menu\0"
- "Gtk/ShellShowsMenubar\0" "gtk-shell-shows-menubar\0";
+ "Gtk/ShellShowsMenubar\0" "gtk-shell-shows-menubar\0"
+ "Gtk/EnablePrimaryPaste\0" "gtk-enable-primary-paste\0";
+
static const struct
{ 1730, 1748 },
{ 1767, 1784 },
{ 1802, 1824 },
- { 1849, 1871 }
+ { 1849, 1871 },
+ { 1895, 1918 }
};
static GdkPixbuf * gtk_entry_ensure_pixbuf (GtkEntry *entry,
GtkEntryIconPosition icon_pos);
static void gtk_entry_update_cached_style_values(GtkEntry *entry);
+static gboolean get_middle_click_paste (GtkEntry *entry);
/* Completion */
static gint gtk_entry_completion_timeout (gpointer data);
return TRUE;
}
- else if (event->button == GDK_BUTTON_MIDDLE && event->type == GDK_BUTTON_PRESS)
+ else if (event->type == GDK_BUTTON_PRESS &&
+ event->button == GDK_BUTTON_MIDDLE &&
+ get_middle_click_paste (entry))
{
if (priv->editable)
{
return FALSE;
}
+static gboolean
+get_middle_click_paste (GtkEntry *entry)
+{
+ GtkSettings *settings;
+ gboolean paste;
+
+ settings = gtk_widget_get_settings (GTK_WIDGET (entry));
+ g_object_get (settings, "gtk-enable-primary-paste", &paste, NULL);
+
+ return paste;
+}
+
static gint
get_cursor_time (GtkEntry *entry)
{
PROP_IM_PREEDIT_STYLE,
PROP_IM_STATUS_STYLE,
PROP_SHELL_SHOWS_APP_MENU,
- PROP_SHELL_SHOWS_MENUBAR
+ PROP_SHELL_SHOWS_MENUBAR,
+ PROP_ENABLE_PRIMARY_PASTE
};
/* --- prototypes --- */
NULL);
g_assert (result == PROP_SHELL_SHOWS_MENUBAR);
+ /**
+ * GtkSettings:gtk-enable-primary-paste:
+ *
+ * Whether a middle click on a mouse should paste the
+ * 'PRIMARY' clipboard content at the cursor location.
+ *
+ * Since: 3.4
+ */
+ result = settings_install_property_parser (class,
+ g_param_spec_boolean ("gtk-enable-primary-paste",
+ P_("Enable primary paste"),
+ P_("Whether a middle click on a mouse should paste the 'PRIMARY' clipboard content at the cursor location."),
+ TRUE,
+ GTK_PARAM_READWRITE),
+ NULL);
+ g_assert (result == PROP_ENABLE_PRIMARY_PASTE);
+
g_type_class_add_private (class, sizeof (GtkSettingsPrivate));
}
GtkDirectionType direction);
static void gtk_text_view_select_all (GtkWidget *widget,
gboolean select);
-
+static gboolean get_middle_click_paste (GtkTextView *text_view);
/* Source side drag signals */
static void gtk_text_view_drag_begin (GtkWidget *widget,
return TRUE;
}
- else if (event->button == GDK_BUTTON_MIDDLE)
+ else if (event->button == GDK_BUTTON_MIDDLE &&
+ get_middle_click_paste (text_view))
{
GtkTextIter iter;
return FALSE;
}
+static gboolean
+get_middle_click_paste (GtkTextView *text_view)
+{
+ GtkSettings *settings;
+ gboolean paste;
+
+ settings = gtk_widget_get_settings (GTK_WIDGET (text_view));
+ g_object_get (settings, "gtk-enable-primary-paste", &paste, NULL);
+
+ return paste;
+}
+
static gint
get_cursor_time (GtkTextView *text_view)
{